package com.ebupt.migu.music.push.mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.ebupt.migu.common.pojo.ErrorReport;
import com.ebupt.migu.music.push.entity.Activity;
import com.ebupt.migu.music.push.entity.PushResult;
import org.apache.ibatis.annotations.Mapper;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by Intellij IDEA.
 * User:  liuyangyang@cd.ebupt.com
 * Date:  2019/10/31
 */
@Mapper
@DS("mysql_mg")
public interface PushTaskMapper {


    /**
     * 查询立即PUSH的策略
     *
     * @return
     */
    List<HashMap<String, Object>> queryPushNow();


    /**
     * 查询单次PUSH的策略
     *
     * @return
     */
    List<HashMap<String, Object>> queryPushOnce(String beginTime);

    /**
     * 查询循环PUSH的策略
     *
     * @param dayOnly
     * @return
     */
    List<HashMap<String, Object>> queryPushLoop(String dayOnly);

    /**
     * 查询间隔PUSH的策略列表
     *
     * @param dayOnly
     * @return
     */
    List<HashMap<String, Object>> queryPushInterval(String dayOnly);

    /**
     * 跟据策略ID更新策略
     *
     * @param map
     */
    void updateStrategyStatus(Map<String, Object> map);

    /**
     * 跟据活动ID查询活动详情
     *
     * @param activityId
     * @return
     */
    Activity queryActivityById(String activityId);

    /**
     * 查询白名单：uuid/imei/idfa
     *
     * @return
     */
    List<Map<String, String>> queryWhiteList();

    /**
     * 查询黑名单：uuid/imei/idfa
     *
     * @return
     */
    List<Map<String, String>> queryBlackList();

    /**
     * 创建push_result记录
     *
     * @param pushResult
     */
    void createPushResult(PushResult pushResult);

    /**
     * 查询指定名单中的成员：msisdn/uuid/imei/idfa
     *
     * @return
     */
    List<Map<String, String>> queryRosterMembers(String id);

    /**
     * 获取对应的策略id 用户群规模
     *
     * @param strategyId
     * @return
     */
    String getGroupSize(String strategyId);

    /**
     * 新增sftp文件同步记录
     *
     * @param map
     */
    void create_sftp_data_sync_record(Map<String, Object> map);

    /**
     * 查询标签平台的人群
     *
     * @param groupId
     * @return
     */
    HashMap<String, Object> isLabelUserGroup(String groupId);

    /**
     * 查询人群状态
     *
     * @param groupId
     * @return
     */
    String qryUserGroupStatus(String groupId);

    /**
     * 人群下发失败记录
     *
     * @param errorReport
     * @return
     */
    void insertErrorReport(ErrorReport errorReport);

    HashMap<String, String> queryStrategyById(String activityId);

    List<String> cids();

    void updatePushResult(HashMap<String, String> map);
}
